﻿<p> <code>umask</code> 就是指定<span class="text-primary"><strong>当前用户在建立档案或目录的时候的权限默认值</strong></span>。</p>

<p>当你建立一个新的档案或目录时，他的默认权限是什么呢？档案或目录的默认权限与什么有关呢？没错，默认权限与<code>umask</code>有关，<code>umask</code>
    的值决定了当前用户建立新档案或目录的权限值。那么，如何得知或设定<code>umask</code>呢？如下：
</p>

<p>
    <pre><code>[root@localhost ~]# umask
0022
[root@localhost ~]# umask -S
u=rwx,g=rx,o=rx
[root@localhost ~]# su - wangyuchuan
[wangyuchuan@localhost ~]$ umask
0002
[wangyuchuan@localhost ~]$ umask -S
u=rwx,g=rwx,o=rx</code></pre>
</p>

<p>如上所示，查阅的方式有两种，一种可以直接输入 <code>umask</code> ，就可以看到数字型态的权限设定分数， 
    一种则是加入<code>-S</code> (Symbolic) 这个选项，就会以符号类型的方式来显示出权限了！
    数字形态的权限设定分数一共有四位数字，第一位是特殊权限值，后三位分别是<code>u,g,o</code>的分数值。
</p>

<p>在默认权限的属性上，目录与档案是不一样的。由于一般档案通常用于数据的记录，所以不需要拥有执行<code>x</code>的权限：</p>
<ul>
    <li>若使用者建立的是<strong>档案</strong>则预设<strong>没有可执行<code>(x)</code>权限</strong>，亦即只有 <code>rw</code> 这两个权限，也就是最
        大为 666 分，预设权限如下：<br />
        <code>-rw-rw-rw- </code>
    </li>
    <li>若用户建立的是<strong>目录</strong>，由于<code>x</code> 与是否可以进入此目录有关，因此默认为所有权限均开放，亦
        即为 777 分，预设权限如下：<br />
        <code>drwxrwxrwx</code>
    </li>
</ul>

<p><strong>要注意的是，<code>umask</code> 的分数指的是『该默认值需要减掉的权限！』</strong><br />
    当要拿掉能写的权限，就是输入 2 分，而如果要拿掉能读的权限，也就是 4 分，
    那么要拿掉读与写的权限，也就是 6 分，而要拿掉执行与写入的权限，也就是 3 分，见下面例子：
</p>


<p>如上，我们使用<code>root</code>账号查看<code>umask</code>的值为<code>0022</code>，所以 <code>user</code> 并没有被拿掉任何权限，
    不过 <code>group</code>与 <code>others</code> 的权限被拿掉了 2 (也就是 w 这个权限)，那么，当<code>root</code>用户：<br />
    <ul>
        <li>建立新的档案时：<code>(-rw-rw-rw-)</code>-<code>(-----w--w-)</code>=<code>(-rw-r--r--)</code></li>
        <pre><code>[root@localhost chuan]# touch testumask
[root@localhost chuan]# ll
-rw-r--r--. 1 root root    0 Jan 11 11:34 testumask</code></pre>
        <li>建立新的目录时：<code>(drwxrwxrwx)</code>-<code>(d----w--w-)</code>=<code>(drwxr-xr-x)</code></li>
        <pre><code>[root@localhost chuan]# mkdir testumaskdir
[root@localhost chuan]# ll
drwxr-xr-x. 2 root root 4096 Jan 11 11:35 testumaskdir</code></pre>
    </ul>
</p>

<p><strong>1. 命令格式</strong></p>
<p><code>umask [-p] [-S] [mode]</code></p>

<p><strong>2. 命令功能</strong></p>
<p>查看或设定预设权限。</p>

<p><strong>3. 命令参数</strong></p>
<p>
    <code class="m-r-md">-S</code><span class="label label-danger">常用</span>以符号形式显示预设权限，默认以数字方式显示。
</p>

<p><strong>4. Example</strong></p>
<p>如果要更改<code>umask</code>的值，使用<code>$ umask 002</code>即可。</p>
<p>在预设的情况中， <code>root</code> 的 <code>umask</code> 会拿掉比较多的属性，<code>root</code> 的 <code>umask</code> 默认是 022 ， 这是基于安全
的考虑，至于一般身份使用者，通常他们的<code>umask</code> 为 002 ，亦即保留同群组的写入权力！</p>
